const http = require('http'); //引入http模块
const url = require('url');
//const iconv = require('iconv-lite'); //乱码解决无效

const server = http.createServer((request, response) => {   //创建http服务
    console.log('-----------------请求进来-----------------');
    response.setHeader("content-type","text/html;charset=utf-8"); //乱码处理
    response.setHeader("username",['张三','李四']); //设置数组头信息参数
    //response.statusCode = 200; //响应状态码设置
    response.statusMessage = '响应状态描述'; //响应状态描述设置
    console.log('获取方法名：', request.method);
    console.log('获取请求路径：', request.url); //不包含ip和端口,/favicon.ico
    console.log('获取http版本：', request.httpVersion); //1.1
    console.log('获取http地址与端口：', request.headers.host); //10.1.90.41:8081

    if(request.method == 'GET') {
        let res = url.parse(request.url, true); //解析url路径参数
        console.log("res: ", res);
        console.log("name: ", res.query.name);
        console.log("age: ", res.query.age);
    }

    let body = '';
    request.on('data', chunk =>  body += chunk);  //获取请求体数据、并追加赋值给body变量
    request.on('end', ()=>{
        console.log('body: %s', body); //打印body
    });

    response.write('hello http server, 你好啊我是服务端。。。');//响应体、返回给前端的数据、支持多次调用
    //response.end('hello http server, 你好啊我是服务端。。。'); //结束服务,并设置响应体、返回给前端的数据,不支持多次调用只能调用一次,等价于：colse
    response.end(); //一般都在write里面设置响应体就行这里可以忽略了
});

server.listen(8081, () => { //设置服务端口、对指定端口进行监听
    console.log('服务已启动'); //服务启动回调函数
});

